package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import util.CaixaMsg;

/**
 * Fornece conexão com o banco de dados, usando as informações em BancodeDados.
 * @author paulo
 */
public class Conexao {

    private Connection con;

    /**
     * Método para retornar uma nova conexão com o banco de dados.
     * @return Uma referência a um Connection.
     */
    public Connection getConnection()
    {
        return con;
    }

    /**
     * Método para conectar ao o banco de dados.
     */
    public void conectar()
    {
        try {
            Class.forName(BancodeDados.getDriver()); 
        } catch (ClassNotFoundException ex) {
            CaixaMsg.exibirDialogErro(null, "Não foi possível carregar o driver para conexão com banco de dados.", "Erro!");
            ex.printStackTrace();
        }
        try {
            con = DriverManager.getConnection(BancodeDados.getURL(), BancodeDados.getUserName(), BancodeDados.getUserPassword());
        } catch (SQLException ex) {
            CaixaMsg.exibirDialogErro(null, "Não foi possível estabelecer conexão com o banco de dados.", "Erro!");
            ex.printStackTrace();
        }
    }

    /**
     * Método usado para fechar a conexão com o banco de dados.
     */
    public void fecharConexao()
    {
        try {
            if ((con != null) && (!con.isClosed()))
            {
                con.close();
                con = null;
            }
        } catch (SQLException ex) {
            CaixaMsg.exibirDialogErro(null, "Não foi possível fechar a conexão com o banco de dados.", "Erro!");
        }
    }
}
